<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Clause: tsl::array_map&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Clause
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">Chatopera Language Understanding Service.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li><a href="pages.html"><span>相关页面</span></a></li>
      <li><a href="modules.html"><span>模块</span></a></li>
      <li><a href="namespaces.html"><span>命名空间</span></a></li>
      <li class="current"><a href="annotated.html"><span>类</span></a></li>
      <li><a href="files.html"><span>文件</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>类列表</span></a></li>
      <li><a href="classes.html"><span>类索引</span></a></li>
      <li><a href="inherits.html"><span>类继承关系</span></a></li>
      <li><a href="functions.html"><span>类成员</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacetsl.html">tsl</a></li><li class="navelem"><a class="el" href="classtsl_1_1array__map.html">array_map</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="#pub-static-attribs">静态 Public 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="classtsl_1_1array__map-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">tsl::array_map&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="array__map_8h_source.html">array_map.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:ab9417f408e43c3079d810a402f07e59d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9417f408e43c3079d810a402f07e59d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>char_type</b> = typename ht::char_type</td></tr>
<tr class="separator:ab9417f408e43c3079d810a402f07e59d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c42cb32e621165eea9155c8547a93f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c42cb32e621165eea9155c8547a93f6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>mapped_type</b> = T</td></tr>
<tr class="separator:a8c42cb32e621165eea9155c8547a93f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fda350b742b173cd6f7341efc14647d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fda350b742b173cd6f7341efc14647d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>key_size_type</b> = typename ht::key_size_type</td></tr>
<tr class="separator:a9fda350b742b173cd6f7341efc14647d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40aeebefb15dc01448b24e3b8abc8f53"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40aeebefb15dc01448b24e3b8abc8f53"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>index_size_type</b> = typename ht::index_size_type</td></tr>
<tr class="separator:a40aeebefb15dc01448b24e3b8abc8f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa37db5d65cdf6b6d5460be7fef93b065"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa37db5d65cdf6b6d5460be7fef93b065"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b> = typename ht::size_type</td></tr>
<tr class="separator:aa37db5d65cdf6b6d5460be7fef93b065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb8b48ad7bedc6b0c749947f390aac75"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb8b48ad7bedc6b0c749947f390aac75"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>hasher</b> = typename ht::hasher</td></tr>
<tr class="separator:acb8b48ad7bedc6b0c749947f390aac75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37227740c3492d225b38b61cec9ad19d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37227740c3492d225b38b61cec9ad19d"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>key_equal</b> = typename ht::key_equal</td></tr>
<tr class="separator:a37227740c3492d225b38b61cec9ad19d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7bc056d39f4d3c701662782521382dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7bc056d39f4d3c701662782521382dc"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b> = typename <a class="el" href="classtsl_1_1detail__array__hash_1_1array__hash_1_1array__hash__iterator.html">ht::iterator</a></td></tr>
<tr class="separator:ab7bc056d39f4d3c701662782521382dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb286fe786e3f9dfc00d2f390f9fe3b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2eb286fe786e3f9dfc00d2f390f9fe3b"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b> = typename <a class="el" href="classtsl_1_1detail__array__hash_1_1array__hash_1_1array__hash__iterator.html">ht::const_iterator</a></td></tr>
<tr class="separator:a2eb286fe786e3f9dfc00d2f390f9fe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a4a5b89c7bbc306c267880bf436326dbd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a5b89c7bbc306c267880bf436326dbd"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>array_map</b> (size_type bucket_count, const Hash &amp;hash=Hash())</td></tr>
<tr class="separator:a4a5b89c7bbc306c267880bf436326dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace611bb89b35143ad09fcf2554ac787e"><td class="memTemplParams" colspan="2"><a class="anchor" id="ace611bb89b35143ad09fcf2554ac787e"></a>
template&lt;class InputIt , typename std::enable_if&lt; is_iterator&lt; InputIt &gt;::value &gt;::type *  = nullptr&gt; </td></tr>
<tr class="memitem:ace611bb89b35143ad09fcf2554ac787e"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>array_map</b> (InputIt first, InputIt last, size_type bucket_count=ht::DEFAULT_INIT_BUCKET_COUNT, const Hash &amp;hash=Hash())</td></tr>
<tr class="separator:ace611bb89b35143ad09fcf2554ac787e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8065b086ce514bcbca16b32efc7369"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f8065b086ce514bcbca16b32efc7369"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>array_map</b> (std::initializer_list&lt; std::pair&lt; const CharT *, T &gt;&gt; init, size_type bucket_count=ht::DEFAULT_INIT_BUCKET_COUNT, const Hash &amp;hash=Hash())</td></tr>
<tr class="separator:a4f8065b086ce514bcbca16b32efc7369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a759987d26ee32dfda4107abafd7f9de4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a759987d26ee32dfda4107abafd7f9de4"></a>
<a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (std::initializer_list&lt; std::pair&lt; const CharT *, T &gt;&gt; ilist)</td></tr>
<tr class="separator:a759987d26ee32dfda4107abafd7f9de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6ba1b88694551ba3934e381d46eeac8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6ba1b88694551ba3934e381d46eeac8"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () noexcept</td></tr>
<tr class="separator:ab6ba1b88694551ba3934e381d46eeac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3775ce910d4da5ab5225ee317f63eaec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3775ce910d4da5ab5225ee317f63eaec"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> () const noexcept</td></tr>
<tr class="separator:a3775ce910d4da5ab5225ee317f63eaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06dcd2cff34504dd6138747734f71dce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06dcd2cff34504dd6138747734f71dce"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cbegin</b> () const noexcept</td></tr>
<tr class="separator:a06dcd2cff34504dd6138747734f71dce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e1f2d2072d1fe3ddb39886ba6fafea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95e1f2d2072d1fe3ddb39886ba6fafea"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () noexcept</td></tr>
<tr class="separator:a95e1f2d2072d1fe3ddb39886ba6fafea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df4550b11cd36df37ed046ce6da1de7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6df4550b11cd36df37ed046ce6da1de7"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> () const noexcept</td></tr>
<tr class="separator:a6df4550b11cd36df37ed046ce6da1de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f80cdf06794074a64288eb3a3ccc2be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f80cdf06794074a64288eb3a3ccc2be"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>cend</b> () const noexcept</td></tr>
<tr class="separator:a5f80cdf06794074a64288eb3a3ccc2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad995756cc44545246756c75be4ff7bf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad995756cc44545246756c75be4ff7bf2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>empty</b> () const noexcept</td></tr>
<tr class="separator:ad995756cc44545246756c75be4ff7bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86d267bcde0cecf81185f3ddd39225df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86d267bcde0cecf81185f3ddd39225df"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const noexcept</td></tr>
<tr class="separator:a86d267bcde0cecf81185f3ddd39225df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8dbb34df32fb6e4c94edf0dfe820b8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8dbb34df32fb6e4c94edf0dfe820b8b"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>max_size</b> () const noexcept</td></tr>
<tr class="separator:ab8dbb34df32fb6e4c94edf0dfe820b8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51e1e4fb42a3e2742636ca24f71a414"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae51e1e4fb42a3e2742636ca24f71a414"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>max_key_size</b> () const noexcept</td></tr>
<tr class="separator:ae51e1e4fb42a3e2742636ca24f71a414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add64ef6d0a8a480c17522718d6d44949"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add64ef6d0a8a480c17522718d6d44949"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>shrink_to_fit</b> ()</td></tr>
<tr class="separator:add64ef6d0a8a480c17522718d6d44949"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09cc066b1bcbfbbdd90fe3af2474216b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09cc066b1bcbfbbdd90fe3af2474216b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clear</b> () noexcept</td></tr>
<tr class="separator:a09cc066b1bcbfbbdd90fe3af2474216b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20c208b0623339cd3ae5791e06ccc59a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20c208b0623339cd3ae5791e06ccc59a"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert</b> (const CharT *key, const T &amp;value)</td></tr>
<tr class="separator:a20c208b0623339cd3ae5791e06ccc59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55f1abdab9c688fae75c673e433a6e9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55f1abdab9c688fae75c673e433a6e9f"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert</b> (const std::basic_string&lt; CharT &gt; &amp;key, const T &amp;value)</td></tr>
<tr class="separator:a55f1abdab9c688fae75c673e433a6e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae047e544a476f1571b4b6192bbd4f4bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae047e544a476f1571b4b6192bbd4f4bc"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert_ks</b> (const CharT *key, size_type key_size, const T &amp;value)</td></tr>
<tr class="separator:ae047e544a476f1571b4b6192bbd4f4bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7142968e21de3460c9ef88ac263f58e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7142968e21de3460c9ef88ac263f58e3"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert</b> (const CharT *key, T &amp;&amp;value)</td></tr>
<tr class="separator:a7142968e21de3460c9ef88ac263f58e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c45722036cf903978e69871699fe905"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c45722036cf903978e69871699fe905"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert</b> (const std::basic_string&lt; CharT &gt; &amp;key, T &amp;&amp;value)</td></tr>
<tr class="separator:a8c45722036cf903978e69871699fe905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98583ad56e8bc1a0a856c84a320355eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98583ad56e8bc1a0a856c84a320355eb"></a>
std::pair&lt; iterator, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>insert_ks</b> (const CharT *key, size_type key_size, T &amp;&amp;value)</td></tr>
<tr class="separator:a98583ad56e8bc1a0a856c84a320355eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e1721ce6dd70d22ec73178f69f12dad"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1e1721ce6dd70d22ec73178f69f12dad"></a>
template&lt;class InputIt , typename std::enable_if&lt; is_iterator&lt; InputIt &gt;::value &gt;::type *  = nullptr&gt; </td></tr>
<tr class="memitem:a1e1721ce6dd70d22ec73178f69f12dad"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>insert</b> (InputIt first, InputIt last)</td></tr>
<tr class="separator:a1e1721ce6dd70d22ec73178f69f12dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bd18d8c6fffd6425eac5fb56c62ab95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3bd18d8c6fffd6425eac5fb56c62ab95"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>insert</b> (std::initializer_list&lt; std::pair&lt; const CharT *, T &gt;&gt; ilist)</td></tr>
<tr class="separator:a3bd18d8c6fffd6425eac5fb56c62ab95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed014f54893bdd59ab982639d7012eff"><td class="memTemplParams" colspan="2"><a class="anchor" id="aed014f54893bdd59ab982639d7012eff"></a>
template&lt;class M &gt; </td></tr>
<tr class="memitem:aed014f54893bdd59ab982639d7012eff"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>insert_or_assign</b> (const CharT *key, M &amp;&amp;obj)</td></tr>
<tr class="separator:aed014f54893bdd59ab982639d7012eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fc28ef1d110e69fbe732a2e8ac53c50"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1fc28ef1d110e69fbe732a2e8ac53c50"></a>
template&lt;class M &gt; </td></tr>
<tr class="memitem:a1fc28ef1d110e69fbe732a2e8ac53c50"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>insert_or_assign</b> (const std::basic_string&lt; CharT &gt; &amp;key, M &amp;&amp;obj)</td></tr>
<tr class="separator:a1fc28ef1d110e69fbe732a2e8ac53c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1091bae42dca83ff8bf50793c4da1188"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1091bae42dca83ff8bf50793c4da1188"></a>
template&lt;class M &gt; </td></tr>
<tr class="memitem:a1091bae42dca83ff8bf50793c4da1188"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>insert_or_assign_ks</b> (const CharT *key, size_type key_size, M &amp;&amp;obj)</td></tr>
<tr class="separator:a1091bae42dca83ff8bf50793c4da1188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f6f696a8e420213d59d9e3cb03d46ff"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1f6f696a8e420213d59d9e3cb03d46ff"></a>
template&lt;class... Args&gt; </td></tr>
<tr class="memitem:a1f6f696a8e420213d59d9e3cb03d46ff"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (const CharT *key, Args &amp;&amp;...args)</td></tr>
<tr class="separator:a1f6f696a8e420213d59d9e3cb03d46ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c68c4f3e42e74aaff9b06b5a8eece70"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1c68c4f3e42e74aaff9b06b5a8eece70"></a>
template&lt;class... Args&gt; </td></tr>
<tr class="memitem:a1c68c4f3e42e74aaff9b06b5a8eece70"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace</b> (const std::basic_string&lt; CharT &gt; &amp;key, Args &amp;&amp;...args)</td></tr>
<tr class="separator:a1c68c4f3e42e74aaff9b06b5a8eece70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c649e1a94f4da0cf58e4de5af52714b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8c649e1a94f4da0cf58e4de5af52714b"></a>
template&lt;class... Args&gt; </td></tr>
<tr class="memitem:a8c649e1a94f4da0cf58e4de5af52714b"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; iterator, bool &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>emplace_ks</b> (const CharT *key, size_type key_size, Args &amp;&amp;...args)</td></tr>
<tr class="separator:a8c649e1a94f4da0cf58e4de5af52714b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4f9758711593f5f49685919bbf26575"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ad4f9758711593f5f49685919bbf26575">erase</a> (const_iterator pos)</td></tr>
<tr class="separator:ad4f9758711593f5f49685919bbf26575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44ce4fbd976067a80b1cd6236989fc2b"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a44ce4fbd976067a80b1cd6236989fc2b">erase</a> (const_iterator first, const_iterator last)</td></tr>
<tr class="separator:a44ce4fbd976067a80b1cd6236989fc2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d23fb3bd126bc54314f3aea31cbc76a"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a5d23fb3bd126bc54314f3aea31cbc76a">erase</a> (const CharT *key)</td></tr>
<tr class="separator:a5d23fb3bd126bc54314f3aea31cbc76a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9eb75c5420f0bc3b860602a516f166d3"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a9eb75c5420f0bc3b860602a516f166d3">erase</a> (const std::basic_string&lt; CharT &gt; &amp;key)</td></tr>
<tr class="separator:a9eb75c5420f0bc3b860602a516f166d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d4631f17fcb949a468780cef923f487"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a5d4631f17fcb949a468780cef923f487">erase_ks</a> (const CharT *key, size_type key_size)</td></tr>
<tr class="separator:a5d4631f17fcb949a468780cef923f487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4214ca2fe61119c4d8fdc2dc1eb8eecc"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a4214ca2fe61119c4d8fdc2dc1eb8eecc">erase</a> (const CharT *key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a4214ca2fe61119c4d8fdc2dc1eb8eecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff3c6772ae6d9896b02aaa875cc579db"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#aff3c6772ae6d9896b02aaa875cc579db">erase</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:aff3c6772ae6d9896b02aaa875cc579db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bebcebf3f32861c8a27cfecffa00739"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a4bebcebf3f32861c8a27cfecffa00739">erase_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a4bebcebf3f32861c8a27cfecffa00739"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2350af4ca6a73faae79f77de439e1ad5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2350af4ca6a73faae79f77de439e1ad5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;other)</td></tr>
<tr class="separator:a2350af4ca6a73faae79f77de439e1ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e1e78fb8204816e7e8bb84f17b51d43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e1e78fb8204816e7e8bb84f17b51d43"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const CharT *key)</td></tr>
<tr class="separator:a8e1e78fb8204816e7e8bb84f17b51d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd3382b2ef0f5e161798472c911a4f19"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd3382b2ef0f5e161798472c911a4f19"></a>
const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const CharT *key) const </td></tr>
<tr class="separator:afd3382b2ef0f5e161798472c911a4f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad73456467a7c65ac0d0ffd6a7ac5d13d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad73456467a7c65ac0d0ffd6a7ac5d13d"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const std::basic_string&lt; CharT &gt; &amp;key)</td></tr>
<tr class="separator:ad73456467a7c65ac0d0ffd6a7ac5d13d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a9525c3322a9841a7aebd501a2fec98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a9525c3322a9841a7aebd501a2fec98"></a>
const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at</b> (const std::basic_string&lt; CharT &gt; &amp;key) const </td></tr>
<tr class="separator:a4a9525c3322a9841a7aebd501a2fec98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02c21691e318b626ec49315216659b6a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02c21691e318b626ec49315216659b6a"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at_ks</b> (const CharT *key, size_type key_size)</td></tr>
<tr class="separator:a02c21691e318b626ec49315216659b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba2746ef69891e6de27dd44e83ee154e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba2746ef69891e6de27dd44e83ee154e"></a>
const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>at_ks</b> (const CharT *key, size_type key_size) const </td></tr>
<tr class="separator:aba2746ef69891e6de27dd44e83ee154e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01e22138ae6aaf4a052beb2ba5a6cafc"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a01e22138ae6aaf4a052beb2ba5a6cafc">at</a> (const CharT *key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a01e22138ae6aaf4a052beb2ba5a6cafc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6540f3952f925de2544610fc3898bc3"><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#aa6540f3952f925de2544610fc3898bc3">at</a> (const CharT *key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:aa6540f3952f925de2544610fc3898bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a635915fe36616505f5859bb0cc1cce3b"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a635915fe36616505f5859bb0cc1cce3b">at</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a635915fe36616505f5859bb0cc1cce3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de8e9e57ec430e9f2f2f43c3fbab104"><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a2de8e9e57ec430e9f2f2f43c3fbab104">at</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:a2de8e9e57ec430e9f2f2f43c3fbab104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dd26f0c103babb71fc6af158ee6ad9f"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a7dd26f0c103babb71fc6af158ee6ad9f">at_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a7dd26f0c103babb71fc6af158ee6ad9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9922c17ff96ff77802f8c637cc027deb"><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a9922c17ff96ff77802f8c637cc027deb">at_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:a9922c17ff96ff77802f8c637cc027deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2a2e8c4b7d71de777d8f5f9b5236a9d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2a2e8c4b7d71de777d8f5f9b5236a9d"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (const CharT *key)</td></tr>
<tr class="separator:ad2a2e8c4b7d71de777d8f5f9b5236a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5224bc2c20f97aac8285a3815a80f5b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5224bc2c20f97aac8285a3815a80f5b7"></a>
T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (const std::basic_string&lt; CharT &gt; &amp;key)</td></tr>
<tr class="separator:a5224bc2c20f97aac8285a3815a80f5b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e0b59ae69db7b697db5f2cf01b35eb7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e0b59ae69db7b697db5f2cf01b35eb7"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>count</b> (const CharT *key) const </td></tr>
<tr class="separator:a5e0b59ae69db7b697db5f2cf01b35eb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b0e8be547492ace05033f2f0518fc1b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b0e8be547492ace05033f2f0518fc1b"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>count</b> (const std::basic_string&lt; CharT &gt; &amp;key) const </td></tr>
<tr class="separator:a6b0e8be547492ace05033f2f0518fc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0643ba572f2a49eabe791243cc1367c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0643ba572f2a49eabe791243cc1367c"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>count_ks</b> (const CharT *key, size_type key_size) const </td></tr>
<tr class="separator:ae0643ba572f2a49eabe791243cc1367c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9053679bbf7f98a4a4722ecf1eb51c4"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ae9053679bbf7f98a4a4722ecf1eb51c4">count</a> (const CharT *key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:ae9053679bbf7f98a4a4722ecf1eb51c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdd7c5c4c361bc2acec5cf63e518a718"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#abdd7c5c4c361bc2acec5cf63e518a718">count</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:abdd7c5c4c361bc2acec5cf63e518a718"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae90fea08ce0a754d00306be0cc56405b"><td class="memItemLeft" align="right" valign="top">size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ae90fea08ce0a754d00306be0cc56405b">count_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:ae90fea08ce0a754d00306be0cc56405b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7dc74775f5f9c9ad818ddd63e6d5318"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7dc74775f5f9c9ad818ddd63e6d5318"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const CharT *key)</td></tr>
<tr class="separator:af7dc74775f5f9c9ad818ddd63e6d5318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dfb5f67d1776a25a43850e37bdcfd23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dfb5f67d1776a25a43850e37bdcfd23"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const CharT *key) const </td></tr>
<tr class="separator:a5dfb5f67d1776a25a43850e37bdcfd23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e2c346944dbd102f37c11fac127e2df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e2c346944dbd102f37c11fac127e2df"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const std::basic_string&lt; CharT &gt; &amp;key)</td></tr>
<tr class="separator:a6e2c346944dbd102f37c11fac127e2df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2518721c0b0e8415b99fb1c12bc29342"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2518721c0b0e8415b99fb1c12bc29342"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find</b> (const std::basic_string&lt; CharT &gt; &amp;key) const </td></tr>
<tr class="separator:a2518721c0b0e8415b99fb1c12bc29342"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0afae3ae80f3624e5c0a65e22eb39a10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0afae3ae80f3624e5c0a65e22eb39a10"></a>
iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find_ks</b> (const CharT *key, size_type key_size)</td></tr>
<tr class="separator:a0afae3ae80f3624e5c0a65e22eb39a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c8e1eb60a5f1886c3aa02f5001add52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c8e1eb60a5f1886c3aa02f5001add52"></a>
const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>find_ks</b> (const CharT *key, size_type key_size) const </td></tr>
<tr class="separator:a5c8e1eb60a5f1886c3aa02f5001add52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86f5611d14969373271b047399fce58c"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a86f5611d14969373271b047399fce58c">find</a> (const CharT *key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a86f5611d14969373271b047399fce58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afabded467b3c0a7ad13a269884984f55"><td class="memItemLeft" align="right" valign="top">const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#afabded467b3c0a7ad13a269884984f55">find</a> (const CharT *key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:afabded467b3c0a7ad13a269884984f55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1fdbcfe54a87ea56601b3f4e71455a8"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ac1fdbcfe54a87ea56601b3f4e71455a8">find</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:ac1fdbcfe54a87ea56601b3f4e71455a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08a37bb1cffa3e5c4cdc9b1e4da6769"><td class="memItemLeft" align="right" valign="top">const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ad08a37bb1cffa3e5c4cdc9b1e4da6769">find</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:ad08a37bb1cffa3e5c4cdc9b1e4da6769"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c58f74e781bfd18d8810748b57b761d"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a9c58f74e781bfd18d8810748b57b761d">find_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a9c58f74e781bfd18d8810748b57b761d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8acec753dac754794f246181ad45d82b"><td class="memItemLeft" align="right" valign="top">const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a8acec753dac754794f246181ad45d82b">find_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:a8acec753dac754794f246181ad45d82b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eafe45ba2feaa414d7775b756215021"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8eafe45ba2feaa414d7775b756215021"></a>
std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const CharT *key)</td></tr>
<tr class="separator:a8eafe45ba2feaa414d7775b756215021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e1625b842a741e034a96b0f6ba00ddb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e1625b842a741e034a96b0f6ba00ddb"></a>
std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const CharT *key) const </td></tr>
<tr class="separator:a2e1625b842a741e034a96b0f6ba00ddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0de7a40cc1e14083ae307bdd7a444197"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0de7a40cc1e14083ae307bdd7a444197"></a>
std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const std::basic_string&lt; CharT &gt; &amp;key)</td></tr>
<tr class="separator:a0de7a40cc1e14083ae307bdd7a444197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c11cce5f2005e67fde70ee6d5ed1534"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c11cce5f2005e67fde70ee6d5ed1534"></a>
std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range</b> (const std::basic_string&lt; CharT &gt; &amp;key) const </td></tr>
<tr class="separator:a2c11cce5f2005e67fde70ee6d5ed1534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2123b3b4e30512c10fac99c65a5d151"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2123b3b4e30512c10fac99c65a5d151"></a>
std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range_ks</b> (const CharT *key, size_type key_size)</td></tr>
<tr class="separator:ad2123b3b4e30512c10fac99c65a5d151"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad159b5615aa27b435d3938cf46f3992b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad159b5615aa27b435d3938cf46f3992b"></a>
std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>equal_range_ks</b> (const CharT *key, size_type key_size) const </td></tr>
<tr class="separator:ad159b5615aa27b435d3938cf46f3992b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a25b4f552a63761fb759659e8b0c15"><td class="memItemLeft" align="right" valign="top">std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a39a25b4f552a63761fb759659e8b0c15">equal_range</a> (const CharT *key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a39a25b4f552a63761fb759659e8b0c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adef80ead57ce273c1bbb4c215537c34d"><td class="memItemLeft" align="right" valign="top">std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#adef80ead57ce273c1bbb4c215537c34d">equal_range</a> (const CharT *key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:adef80ead57ce273c1bbb4c215537c34d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacb762946a4cc578cb59e73a24b8ef0d"><td class="memItemLeft" align="right" valign="top">std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#aacb762946a4cc578cb59e73a24b8ef0d">equal_range</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash)</td></tr>
<tr class="separator:aacb762946a4cc578cb59e73a24b8ef0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af20f8e34f2b0ac5893f5393c0d8a0dea"><td class="memItemLeft" align="right" valign="top">std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#af20f8e34f2b0ac5893f5393c0d8a0dea">equal_range</a> (const std::basic_string&lt; CharT &gt; &amp;key, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:af20f8e34f2b0ac5893f5393c0d8a0dea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a334c678a506ca957764348577e71da83"><td class="memItemLeft" align="right" valign="top">std::pair&lt; iterator, iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a334c678a506ca957764348577e71da83">equal_range_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash)</td></tr>
<tr class="separator:a334c678a506ca957764348577e71da83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae376998b9d8c45aabc9f029e1c3a6eaa"><td class="memItemLeft" align="right" valign="top">std::pair&lt; const_iterator, const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#ae376998b9d8c45aabc9f029e1c3a6eaa">equal_range_ks</a> (const CharT *key, size_type key_size, std::size_t precalculated_hash) const </td></tr>
<tr class="separator:ae376998b9d8c45aabc9f029e1c3a6eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0086403901b76647882f0a66a8124e37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0086403901b76647882f0a66a8124e37"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>bucket_count</b> () const </td></tr>
<tr class="separator:a0086403901b76647882f0a66a8124e37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad58bd67106fcf4990c49319060b0176"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad58bd67106fcf4990c49319060b0176"></a>
size_type&#160;</td><td class="memItemRight" valign="bottom"><b>max_bucket_count</b> () const </td></tr>
<tr class="separator:aad58bd67106fcf4990c49319060b0176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d6ebfe8cec7939d90e1d1d2416fbfaa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d6ebfe8cec7939d90e1d1d2416fbfaa"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>load_factor</b> () const </td></tr>
<tr class="separator:a4d6ebfe8cec7939d90e1d1d2416fbfaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afac31fb9abcdbfc2fa9f47136e38d981"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afac31fb9abcdbfc2fa9f47136e38d981"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>max_load_factor</b> () const </td></tr>
<tr class="separator:afac31fb9abcdbfc2fa9f47136e38d981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd078431bcef022c11912fbce3019521"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd078431bcef022c11912fbce3019521"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>max_load_factor</b> (float ml)</td></tr>
<tr class="separator:abd078431bcef022c11912fbce3019521"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25e5839dffbb17721cc0df764507c709"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25e5839dffbb17721cc0df764507c709"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rehash</b> (size_type count)</td></tr>
<tr class="separator:a25e5839dffbb17721cc0df764507c709"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35ec9dfb169d7b55308c0aa0a2dde568"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35ec9dfb169d7b55308c0aa0a2dde568"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reserve</b> (size_type count)</td></tr>
<tr class="separator:a35ec9dfb169d7b55308c0aa0a2dde568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82fc9183f4910068d247eee5c8894743"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82fc9183f4910068d247eee5c8894743"></a>
hasher&#160;</td><td class="memItemRight" valign="bottom"><b>hash_function</b> () const </td></tr>
<tr class="separator:a82fc9183f4910068d247eee5c8894743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a163a22c59f358e155154118bd945ff02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a163a22c59f358e155154118bd945ff02"></a>
key_equal&#160;</td><td class="memItemRight" valign="bottom"><b>key_eq</b> () const </td></tr>
<tr class="separator:a163a22c59f358e155154118bd945ff02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af90f943d794338955d94678be509cfc3"><td class="memItemLeft" align="right" valign="top">iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#af90f943d794338955d94678be509cfc3">mutable_iterator</a> (const_iterator it) noexcept</td></tr>
<tr class="separator:af90f943d794338955d94678be509cfc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bea4f13933b16575b5498779738853c"><td class="memTemplParams" colspan="2">template&lt;class Serializer &gt; </td></tr>
<tr class="memitem:a4bea4f13933b16575b5498779738853c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a4bea4f13933b16575b5498779738853c">serialize</a> (Serializer &amp;serializer) const </td></tr>
<tr class="separator:a4bea4f13933b16575b5498779738853c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:a9c91ecf896f6e444856bae9c15ad641b"><td class="memTemplParams" colspan="2">template&lt;class Deserializer &gt; </td></tr>
<tr class="memitem:a9c91ecf896f6e444856bae9c15ad641b"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classtsl_1_1array__map.html">array_map</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtsl_1_1array__map.html#a9c91ecf896f6e444856bae9c15ad641b">deserialize</a> (Deserializer &amp;deserializer, bool hash_compatible=false)</td></tr>
<tr class="separator:a9c91ecf896f6e444856bae9c15ad641b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
静态 Public 属性</h2></td></tr>
<tr class="memitem:ae5ff9a3ea9891f28aaa619d9217220da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5ff9a3ea9891f28aaa619d9217220da"></a>
static const size_type&#160;</td><td class="memItemRight" valign="bottom"><b>MAX_KEY_SIZE</b> = ht::MAX_KEY_SIZE</td></tr>
<tr class="separator:ae5ff9a3ea9891f28aaa619d9217220da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:ad1c3dff914db66e1ff7b1564b48c314a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1c3dff914db66e1ff7b1564b48c314a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;lhs, const <a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;rhs)</td></tr>
<tr class="separator:ad1c3dff914db66e1ff7b1564b48c314a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a812d88ef8afa0c05dfe26dcb2cfd98fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a812d88ef8afa0c05dfe26dcb2cfd98fe"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;lhs, const <a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;rhs)</td></tr>
<tr class="separator:a812d88ef8afa0c05dfe26dcb2cfd98fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a669256840331fe8dca08bc971bf9956e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a669256840331fe8dca08bc971bf9956e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;lhs, <a class="el" href="classtsl_1_1array__map.html">array_map</a> &amp;rhs)</td></tr>
<tr class="separator:a669256840331fe8dca08bc971bf9956e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;class CharT, class T, class Hash = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT = std::uint16_t, class IndexSizeT = std::uint32_t, class GrowthPolicy = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt;<br />
class tsl::array_map&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;</h3>

<p>Implementation of a cache-conscious string hash map.</p>
<p>The map stores the strings as <code>const CharT*</code>. If <code>StoreNullTerminator</code> is true, the strings are stored with the a null-terminator (the <code>key()</code> method of the iterators will return a pointer to this null-terminated string). Otherwise the null character is not stored (which allow an economy of 1 byte per string).</p>
<p>The value <code>T</code> must be either nothrow move-constructible, copy-constuctible or both.</p>
<p>The size of a key string is limited to <code>std::numeric_limits&lt;KeySizeT&gt;::max() - 1</code>. That is 65 535 characters by default, but can be raised with the <code>KeySizeT</code> template parameter. See <code>max_key_size()</code> for an easy access to this limit.</p>
<p>The number of elements in the map is limited to <code>std::numeric_limits&lt;IndexSizeT&gt;::max()</code>. That is 4 294 967 296 elements, but can be raised with the <code>IndexSizeT</code> template parameter. See <code>max_size()</code> for an easy access to this limit.</p>
<p>Iterators invalidation:</p><ul>
<li>clear, operator=: always invalidate the iterators.</li>
<li>insert, emplace, operator[]: always invalidate the iterators.</li>
<li>erase: always invalidate the iterators.</li>
<li>shrink_to_fit: always invalidate the iterators. </li>
</ul>
</div><h2 class="groupheader">成员函数说明</h2>
<a class="anchor" id="a01e22138ae6aaf4a052beb2ba5a6cafc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="aa6540f3952f925de2544610fc3898bc3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a635915fe36616505f5859bb0cc1cce3b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a2de8e9e57ec430e9f2f2f43c3fbab104"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a7dd26f0c103babb71fc6af158ee6ad9f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a9922c17ff96ff77802f8c637cc027deb"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::at_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ae9053679bbf7f98a4a4722ecf1eb51c4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::count </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="abdd7c5c4c361bc2acec5cf63e518a718"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::count </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ae90fea08ce0a754d00306be0cc56405b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::count_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a9c91ecf896f6e444856bae9c15ad641b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<div class="memtemplate">
template&lt;class Deserializer &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classtsl_1_1array__map.html">array_map</a> <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::deserialize </td>
          <td>(</td>
          <td class="paramtype">Deserializer &amp;&#160;</td>
          <td class="paramname"><em>deserializer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hash_compatible</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Deserialize a previouly serialized map through the <code>deserializer</code> parameter.</p>
<p>The <code>deserializer</code> parameter must be a function object that supports the following calls:</p><ul>
<li><code>template&lt;typename U&gt; U operator()();</code> where the types <code>std::uint64_t</code>, <code>float</code> and <code>T</code> must be supported for U.</li>
<li><code>void operator()(CharT* value_out, std::size_t value_size);</code></li>
</ul>
<p>If the deserialized hash map type is hash compatible with the serialized map, the deserialization process can be sped up by setting <code>hash_compatible</code> to true. To be hash compatible, the Hash (take care of the 32-bits vs 64 bits), KeyEqual, GrowthPolicy, StoreNullTerminator, KeySizeT and IndexSizeT must behave the same than the ones used on the serialized map. Otherwise the behaviour is undefined with <code>hash_compatible</code> sets to true.</p>
<p>The behaviour is undefined if the type <code>CharT</code> and <code>T</code> of the <code><a class="el" href="classtsl_1_1array__map.html">array_map</a></code> are not the same as the types used during serialization.</p>
<p>The implementation leaves binary compatibilty (endianness, IEEE 754 for floats, size of int, ...) of the types it deserializes in the hands of the <code>Deserializer</code> function object if compatibilty is required. </p>

</div>
</div>
<a class="anchor" id="a39a25b4f552a63761fb759659e8b0c15"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;iterator, iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="adef80ead57ce273c1bbb4c215537c34d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;const_iterator, const_iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="aacb762946a4cc578cb59e73a24b8ef0d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;iterator, iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="af20f8e34f2b0ac5893f5393c0d8a0dea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;const_iterator, const_iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a334c678a506ca957764348577e71da83"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;iterator, iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ae376998b9d8c45aabc9f029e1c3a6eaa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt;const_iterator, const_iterator&gt; <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::equal_range_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ad4f9758711593f5f49685919bbf26575"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const_iterator&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit. </p>

<p><div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="classtsl_1_1array__map_ad4f9758711593f5f49685919bbf26575_icgraph.png" border="0" usemap="#classtsl_1_1array__map_ad4f9758711593f5f49685919bbf26575_icgraph" alt=""/></div>
<map name="classtsl_1_1array__map_ad4f9758711593f5f49685919bbf26575_icgraph" id="classtsl_1_1array__map_ad4f9758711593f5f49685919bbf26575_icgraph">
<area shape="rect" id="node2" href="classtsl_1_1array__map.html#a44ce4fbd976067a80b1cd6236989fc2b" title="tsl::array_map::erase" alt="" coords="222,5,381,32"/>
<area shape="rect" id="node3" href="classtsl_1_1array__map.html#a5d4631f17fcb949a468780cef923f487" title="tsl::array_map::erase_ks" alt="" coords="212,56,391,83"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a44ce4fbd976067a80b1cd6236989fc2b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const_iterator&#160;</td>
          <td class="paramname"><em>first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const_iterator&#160;</td>
          <td class="paramname"><em>last</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit. </p>

<p><div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="classtsl_1_1array__map_a44ce4fbd976067a80b1cd6236989fc2b_cgraph.png" border="0" usemap="#classtsl_1_1array__map_a44ce4fbd976067a80b1cd6236989fc2b_cgraph" alt=""/></div>
<map name="classtsl_1_1array__map_a44ce4fbd976067a80b1cd6236989fc2b_cgraph" id="classtsl_1_1array__map_a44ce4fbd976067a80b1cd6236989fc2b_cgraph">
<area shape="rect" id="node2" href="classtsl_1_1array__map.html#ad4f9758711593f5f49685919bbf26575" title="tsl::array_map::erase" alt="" coords="212,5,371,32"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a5d23fb3bd126bc54314f3aea31cbc76a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit. </p>

</div>
</div>
<a class="anchor" id="a9eb75c5420f0bc3b860602a516f166d3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit. </p>

</div>
</div>
<a class="anchor" id="a4214ca2fe61119c4d8fdc2dc1eb8eecc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit.</p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="aff3c6772ae6d9896b02aaa875cc579db"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit.</p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a5d4631f17fcb949a468780cef923f487"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit. </p>

<p><div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="classtsl_1_1array__map_a5d4631f17fcb949a468780cef923f487_cgraph.png" border="0" usemap="#classtsl_1_1array__map_a5d4631f17fcb949a468780cef923f487_cgraph" alt=""/></div>
<map name="classtsl_1_1array__map_a5d4631f17fcb949a468780cef923f487_cgraph" id="classtsl_1_1array__map_a5d4631f17fcb949a468780cef923f487_cgraph">
<area shape="rect" id="node2" href="classtsl_1_1array__map.html#ad4f9758711593f5f49685919bbf26575" title="tsl::array_map::erase" alt="" coords="232,5,391,32"/>
</map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a4bebcebf3f32861c8a27cfecffa00739"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_type <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::erase_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Erase has an amortized O(1) runtime complexity, but even if it removes the key immediatly, it doesn't do the same for the associated value T.</p>
<p>T will only be removed when the ratio between the size of the map and the size of the map + the number of deleted values still stored is low enough.</p>
<p>To force the deletion you can call shrink_to_fit.</p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a86f5611d14969373271b047399fce58c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="afabded467b3c0a7ad13a269884984f55"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const_iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ac1fdbcfe54a87ea56601b3f4e71455a8"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="ad08a37bb1cffa3e5c4cdc9b1e4da6769"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const_iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find </td>
          <td>(</td>
          <td class="paramtype">const std::basic_string&lt; CharT &gt; &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a9c58f74e781bfd18d8810748b57b761d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="a8acec753dac754794f246181ad45d82b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const_iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::find_ks </td>
          <td>(</td>
          <td class="paramtype">const CharT *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_type&#160;</td>
          <td class="paramname"><em>key_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>precalculated_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>
<p>Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. </p>

</div>
</div>
<a class="anchor" id="af90f943d794338955d94678be509cfc3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">iterator <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::mutable_iterator </td>
          <td>(</td>
          <td class="paramtype">const_iterator&#160;</td>
          <td class="paramname"><em>it</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the <code>const_iterator it</code> as an <code>iterator</code>. </p>

</div>
</div>
<a class="anchor" id="a4bea4f13933b16575b5498779738853c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class CharT , class T , class Hash  = tsl::ah::str_hash&lt;CharT&gt;, class KeyEqual  = tsl::ah::str_equal&lt;CharT&gt;, bool StoreNullTerminator = true, class KeySizeT  = std::uint16_t, class IndexSizeT  = std::uint32_t, class GrowthPolicy  = tsl::ah::power_of_two_growth_policy&lt;2&gt;&gt; </div>
<div class="memtemplate">
template&lt;class Serializer &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classtsl_1_1array__map.html">tsl::array_map</a>&lt; CharT, T, Hash, KeyEqual, StoreNullTerminator, KeySizeT, IndexSizeT, GrowthPolicy &gt;::serialize </td>
          <td>(</td>
          <td class="paramtype">Serializer &amp;&#160;</td>
          <td class="paramname"><em>serializer</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Serialize the map through the <code>serializer</code> parameter.</p>
<p>The <code>serializer</code> parameter must be a function object that supports the following calls:</p><ul>
<li><code>template&lt;typename U&gt; void operator()(const U&amp; value);</code> where the types <code>std::uint64_t</code>, <code>float</code> and <code>T</code> must be supported for U.</li>
<li><code>void operator()(const CharT* value, std::size_t value_size);</code></li>
</ul>
<p>The implementation leaves binary compatibilty (endianness, IEEE 754 for floats, ...) of the types it serializes in the hands of the <code>Serializer</code> function object if compatibilty is required. </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>src/hat-trie/include/tsl/array-hash/<a class="el" href="array__map_8h_source.html">array_map.h</a></li>
</ul>
</div><!-- contents -->
<address class="footer">
    <small>
        &nbsp; Copyright (c) (2019-2020) &nbsp;<a href="https://www.chatopera.com">
            北京华夏春松科技有限公司
        </a>. All Rights Reserved
        &nbsp;
    </small>
</address>